>> << >>> 在java中的意义

来源:百度知道 编辑:UC知道 时间:2024/09/25 07:18:49

“<<”, “>>”, “>>>”在Java中是左移、有符号右移和无符号右移运算符。位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。

比如t>>>n的含义就是把整数t右移n位,高位补上零。所以如果t是个负数,最高位是1,那么经过无符号右移之后,就成了一个正数。比如 -1>>>31=1。

值得注意的是,虚拟机在进行位移操作之前,把位移的位数(即“t>>>n”中的n)对32取了模,左移或右移33位等价于移动1位,而且无论任何数,使其移动32位,其值都不会发生变化。因为在虚拟机看来,t>>>32与t>>>0是等价的(同理t<<32等价于t<<0)。移动64位也是如此,以此类推。

那如果移动的位数 n 是负数怎么办呢?。
这时虚拟机会先让n对32取模,变成一个绝对值小于32的负数,然后再加上32,直到 n 变成一个正数。比如(k>>>-1) ==> (k>>>31); (k>>-43) ==> (k>>-11) ==> (k>>>21)。

我的理解是这样,因为你给的问题很片面,所以我的回答也是很片面的,不知道你可否满意.
如果当做按钮来做的话,就是上一页和下一页的查找.

移位运算符.比如8>>2结果是2 2<<3结果是8
至于>>>我本人不怎么用,也忘了意思,程序这东西最好自己试试